﻿using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using Insifo.BE;
using Insifo.BE.Gen;
using Insifo.BE.Seg;
using Insifo.DL.Seg;
using Insifo.DL;

namespace Insifo.BL.Seg
{
    public class BLUsuarioPreferencia
    {
        //Objeto transaccion
        DLTransactionMng _transaccion = null;

        //Instancias
        DLUsuarioPreferencia _dl = new DLUsuarioPreferencia();

        /// <summary>
        /// Lista los usuarios con permiso para las preferencia
        /// </summary>
        /// <returns>Devuelve un DataSet</returns>
        public DataSet Listar(BEUsuarioPreferencia pbe)
        {
            return _dl.Listar(pbe);
        }

        /// <summary>
        /// Inserta los permisos de los usuario por Preferencia 
        /// </summary>
        /// <returns>Devuelve un DataSet</returns>
        public BEUsuario Insertar(BEUsuario pbe)
        {
            _transaccion = DLTransactionMng.Begin();
            try
            {
                _dl.Transaction = _transaccion;

                foreach (BEUsuarioPreferencia bePreferencia in pbe.Preferencias)
                {
                    bePreferencia.CodigoUsuario = pbe.CodigoUsuario;
                    _dl.Insertar(bePreferencia);
                }
                //Culmina la transaccion
                _transaccion.Commit();
            }
            catch (Exception e)
            {
                //Cancela la transaccion
                _transaccion.RollBack();
                throw e;
            }
            finally
            {
                _transaccion.Dispose();
            }
            return pbe;
        }
    }

   
}
